package com.framework.rocketmq.consumer;

import lombok.Data;
import org.apache.rocketmq.client.consumer.listener.MessageListenerConcurrently;
import org.apache.rocketmq.common.consumer.ConsumeFromWhere;
import org.apache.rocketmq.common.protocol.heartbeat.MessageModel;

/**
 * 描述：
 * 消息队列配置对象
 * @author xianggj
 * @Date 2021/10/13 17:46
 **/
@Data
public class MQConfig {

    /**
     * 默认测试topic
     */
    public static final String TOPIC =  "TopicTest";

    /**
     * topi参数必须
     */
    private MQConfig() {
    }

    public MQConfig(String topic) {
        this.topic = topic;
    }

    /**
     * 主题
     */
    private String topic;

    /**
     * 标签 如果没指定默认为* 表示所以标签
     */
    private String subExpression = "*";

    /**
     * 设置为集群消费(区别于广播消费)
     */
    private MessageModel messageModel = MessageModel.CLUSTERING;

    /**
     * 设置Consumer第一次启动是从队列头部开始消费还是队列尾部开始消费,如果非第一次启动，那么按照上次消费的位置继续消费
     *
     * 1.CONSUME_FROM_LAST_OFFSET 从当前组的末尾消费
     * 2.CONSUME_FROM_FIRST_OFFSET 从当前组的开头消费
     * 3.CONSUME_FROM_TIMESTAMP 设定时间DefaultMQPushConsumer.consumeTimestamp参数 从这个时间点开始收集
     */

    private ConsumeFromWhere consumeFromWhere = ConsumeFromWhere.CONSUME_FROM_LAST_OFFSET;

    private int maxThread = 20;

    private int minThread = 10;

}
